package com.hr.leetcode.哈希表;

import java.util.*;

/**
 * @author 周恒哲
 * @date 2020/05/15
 **/
public class _49_字母异位词分组 {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String,Integer> map=new HashMap<>();//创建一个map存储数量
        List<List<String>> res=new ArrayList<>();//创建题目要求的返回值
        int count=0;//计数器
        for (String s : strs) {//遍历字符串形成
            //接下来三行都是为了给String里面的字符排序  比如 bug  -> bgu
            char[] chars=s.toCharArray();
            Arrays.sort(chars);
            String s1 = String.valueOf(chars);
            //然后就可以判断是否在map里面了
            if (!map.containsKey(s1)){
                res.add(new ArrayList<>());
                map.put(s1,count++);
            }
            res.get(map.get(s1)).add(s);//因为map里面已经存在，所以只需要返回就可以
        }
        return res;
    }

    public static void main(String[] args) {
        String[] strings=new String[]{
                "eat", "tea", "tan", "ate", "nat", "bat"
        };
        _49_字母异位词分组 a=new _49_字母异位词分组();
        a.groupAnagrams(strings);
    }
}
